iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Modern Web

Node.js系列 第 14

DAY 14 機器人做得更好 ! DC機器人 Node.js建置

  • 分享至 

  • xImage
  •  

DAY 14 DC機器人 Node.js建置

{%hackmd BJrTq20hE %}

tags: 第 14 屆 iThome 鐵人賽 (2022)

『Why do it yourself,when robots do it better』 --Echo ,機器人做得更好,幹嘛自己做,是我喜歡的幹員所講的話,充分表現了我身為資工人的想法,懶惰為進步之母,勤奮為怠惰彌補,身為資工人就是沒事 > 有事 > Debug > 再一次。

建置機器人

首先,我們需要先設立一個Package,這樣才能在之後更好管理我們的套件和要安裝的依據性模組。

npm init -y

接下來,我們就能夠安裝Discord Bot的Package,這是為了使我們能夠跟DC伺服器溝通的套件,所以要確保Dependencies裡面有設定到,我們安裝的套件。

npm install discord.js dotenv


檢查Dependencies裡面有設定到

然後我們要建立一個.env的檔案,記得.env的檔案從不應該給其他人看到,也不應該被Push到任何本地或遠端資料庫,因為我們在裡面設定的資料,將會賦予使用者管理員權限,意思就是之後您遇到任何檔案裡的.env資料都應該被妥善保存,我們在要.env裡面保存我們機器人的Token,回到Discord api 研發者介面,從BOT > RESET BOT'S TOKEN 生成屬於自己的Token,記得任何擁有Token資訊的人都能夠獲得這支機器人的全權控制,請妥善保管。

然後將其輸入到我們的.env檔案裡。

機器人主程式

創造一個app.js開始寫DiscordBot的主程式,首先我們需要引入剛剛下載的Dependencies

import DiscordJS from 'discord.js'
import dotenv from 'dotenv'

也可以用

const discord.js = require('discord.js')
const dotenv = require('dotenv')

然後使用,JavaScript=const client = new DiscordJS.Client({})創造client使用端的物件,在Discord API 14以上的版本,要使用intents:[]來宣告這個機器人有什麼功能,所以所有的功能都要先告訴GatewayIntentBits,使用client.on()來註冊事件,在使用Login來登入,關於物件及物件Emitter我會在下一篇進行更進一步的講解。

import DiscordJS,{ GatewayIntentBits, IntentsBitField }  from 'discord.js'
import dotenv from 'dotenv'

dotenv.config()

const client = new DiscordJS.Client({
    intents:[
     GatewayIntentBits.Guilds,
     GatewayIntentBits.GuildMessages,
     GatewayIntentBits.MessageContent,
    ]

})

client.on('messageCreate',(message) => {
    if (message.content === 'test'){
        message.reply({
            content:'BOT已啟動 BOT準備完畢',
        })

    }

})

client.login(process.env.TOKEN)

來試試看可不可以用吧!

node app.js


诶! 0~,這是因為我們的程式在模組外面執行,所以不能和DC的伺服器建立溝通,所以我們要去package.json裡面設定Node="type": "module",,在試用一次。

我們的機器人就上線拉!

然後在聊天頻道打上test

是一個健康的男孩子呢QQ(感動),下一篇我會用DC機器人來講解『事件與事件監聽器』,Discord機器人還有很多可能性,像是能夠自定義歡迎訊息,紀錄時間,甚至能夠做一個連接網站給妳勝率最高英雄的福文與天賦,形成自己的經濟系統,或單純的讓你的DC體驗變得更好,這些方法學以自用,成就感會是很充裕的。
今天的結構:


上一篇
DAY 13 站在科技巨人的肩膀上! 用Node.js做Discord機器人
下一篇
DAY 15 知名DC機器人該有的3個功能
系列文
Node.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言